using Jupiter.Infrastructure.Responses;
using Wips.AppService.Authorities.Positions.Requests;
using Wips.AppService.Authorities.Positions.Responses;
using Wips.AppService.CommonViewModels;

namespace Wips.AppService.Authorities.Positions
{
    /// <summary>
    /// 职位服务接口
    /// </summary>
    public interface IPositionService
    {
        /// <summary>
        /// 读取分页列表
        /// </summary>
        /// <param name="request">请求类</param>
        /// <returns></returns>
        Task<PageResult<GetPositionPagesResponse>> GetPagesAsync(GetPositionPagesRequest request);

        /// <summary>
        /// 读取信息
        /// </summary>
        /// <param name="id">Id</param>
        /// <returns></returns>
        Task<GetPositionByIdResponse> GetByIdAsync(string id);

        /// <summary>
        /// 读取树形选择框数据列表
        /// </summary>
        /// <returns></returns>
        Task<List<TreeSelectViewModel>> GetTreeSelectDataAsync();

        /// <summary>
        /// 根据角色Id读取职位Id列表
        /// </summary>
        /// <param name="roleId">角色ID</param>
        /// <returns></returns>
        Task<List<string>> GetIdsByRoleIdAsync(string roleId);

    }
}